package com.Q05;

/**
 * @version v1.0.0
 * 创建时间：2022/7/14 11:03
 */
public class Q05_03 {
    public int reverseBits(int num) {
        // 记录第一部分和第二部分的1的个数
        // 遇到第二次0或者越界停止
        int part1 = 0;
        int part2 = 0;
        int res =0;
        while(num!=0){
            int bit =num&1;
            if(bit==0){
                res =Math.max(res,part1+part2+1);
                part2 =part1 ;
                part1 = 0;
            }else{
                part1 += bit;
            }
            num = num>>>1;
        }
        res =Math.max(res,part1+part2+1);
        if (res>32) return 32;
        return res;
    }

    public static void main(String[] args) {
        new Q05_03().reverseBits(-1);
    }
}
